package simco.framework.gui.graph.iface;

/**
 * Definuje graficky objekt, jenz lze uzivatelem oznacit (vybrat). 
 * Kazdy takto definovany objekt ma dva stavy oznaceny/neoznaceny.
 *   
 * @author Matej Prokop, mythge@students.zcu.cz
 */
public interface Selectable 
{
	/**
	 * Vypocte zda-li se bod zadany souradnicemi v prijatych
	 * parametrch metody nachazi uvnitr tohoto grafickeho objektu.
	 * 
	 * @param x x-ova souradnice testovaneho bodu
	 * @param y y-ova souradnice testovaneho bodu
	 * @return true pokud se bod definovany vstupnimi parametry
	 * nachazi uvnitr grafickeho objektu, jinak vraci false
	 */
    public boolean isInsideObject(int x, int y);
    
    /**
     * Vraci logickou hodnotu zda-li je objekt momentalne oznaceny
     * @return logickou hodnotu zda-li je objekt momentalne oznaceny
     */
    public boolean isSelected();
    
    /**
     * Nastavuje logickou hodnotu zda-li je objekt momentalne oznaceny
     * @param newValue logicka hodnota zda-li je objekt momentalne oznaceny
     */
    public void setSelected(boolean newValue);
}
